There is also a fortran interface to p4 (p4f).
a set of abstract data types sharable among processes:
p4_lock_t (locks)
p4_monitor_t (general monitors)
p4_barrier_monitor_t
p4_getsub_monitor_t
p4_askfor_monitor_t
a set of procedures for process management:
p4_create()
p4_create_procgroup()
p4_wait_for_end()
p4_get_my_id()
p4_get_my_cluster_id()
p4_get_cluster_ids()
p4_am_i_cluster_master()
p4_num_total_ids()
p4_num_total_slaves()
p4_num_cluster_ids()
a set of procedures for manipulating shared data items
and coordinating the activities of processes that use them:
p4_shmalloc()
p4_shfree()
p4_malloc()
p4_free()
p4_lock_init()
p4_lock()
p4_unlock()
p4_barrier()
p4_barrier_init()
p4_getsub()
p4_getsub_init()
p4_askfor()
p4_askfor_init()
p4_update()
p4_moninit()
p4_menter()
p4_mexit()
p4_mcontinue()
p4_mdelay()
p4_probend()
p4_progend()
a set of procedures for sending/receiving messages:
p4_send()
p4_sendr()
p4_sendx()
p4_sendrx()
p4_sendb()
p4_sendbr()
p4_sendbx()
p4_sendbrx()
p4_recv()
p4_msg_free()
p4_msg_alloc()
p4_messages_available()
additional procedures:
p4_version()
p4_initenv()
p4_clock()
p4_dprintf()
p4_dprintfl()
p4_get_dbg_level()
p4_set_dbg_level()
p4_print_avail_buffs()
p4_set_avail_buff()
p4_broadcast()
p4_broadcastx()
p4_global_barrier()
p4_global_op()
p4_int_absmax_op()
p4_int_absmin_op()
p4_int_max_op()
p4_int_min_op()
p4_int_mult_op()
p4_int_sum_op()
p4_dbl_absmax_op()
p4_dbl_absmin_op()
p4_dbl_max_op()
p4_dbl_min_op()
p4_dbl_mult_op()
p4_dbl_sum_op()
p4_flt_absmax_op()
p4_flt_absmin_op()
p4_flt_max_op()
p4_flt_min_op()
p4_flt_mult_op()
p4_flt_sum_op()
myprogram -pg procgroup_file_name